Computer virtualization is a technique that involves encapsulating a physical computing machine platform into virtual machine(s) executing under control of virtualization software on a hardware computing platform or “host.” A virtual machine (VM) provides virtual hardware abstractions for processor, memory, storage, and the like to a guest operating system. The virtualization software, also referred to as a “hypervisor,” incudes one or more virtual machine monitors (VMMs) to provide execution environment(s) for the virtual machine(s). As physical hosts have grown larger, with greater processor core counts and terabyte memory sizes, virtualization has become key to the economic utilization of available hardware.
Software executing in a virtual machine includes an executive, such as a guest operating system (OS). Some actions taken by a guest OS cause program execution to exit to the hypervisor (referred to as a “VM exit”). In some cases, the executive in a virtual machine is a hypervisor (inner hypervisor) that provides execution environment(s) for further virtual machines (inner virtual machines). Nesting hypervisors and virtual machines can result in decreased performance.